const getInput=(el)=>{
    return el instanceof HTMLInputElement ? el : el.querySelector("input");
};
let inputHandler=()=>{};

export default {
    mounted(el,{arg,value,modifiers,expression}){
        // 并不支持中文输入法的-、e等键的输入
        // el.addEventListener("keypress",function(e){
        //     e=e || window.event;
        //     let charcode=typeof e.charCode === "number" ? e.charCode : e.keyCode;
        //     let pattern=/\d/;
        //     if(!pattern.test(String.fromCharCode(charcode)) && charcode > 9 && !e.ctrlKey){
        //         if(e.preventDefault){
        //             e.preventDefault();
        //         }else{
        //             e.returnValue=false;
        //         };
        //     };
        // });
        // 推荐使用
        const input=getInput(el);
        // console.log(arg)
        if(input && arg.inputType === "number"){
            const decimal=arg.decimal ? `(\\.\\d{0,${arg.decimal}})?` : "";
            const integer=value ? `(0|[1-9]\\d{0,${value-1}})` : "0|[1-9]\\d*";
            const regExp=new RegExp((integer+decimal),"g");
            inputHandler=()=>{
                input.value=input.value.toString().trim().replace(/[^\d.]/g,"")?.match?.(regExp)?.[0] ?? "";
            };
            input.addEventListener("input",inputHandler,true);
        };
    },
    unMounted(el){
        const input=getInput(el);
        input.removeEventListener("input",inputHandler,true);
    }
};
